#include <iostream>

using namespace std;

const int N = 210, M = 400;

int n;
int f[N][M]; 

void add(int A[], int B[], int C[])
{
	for(int i = 0; i < M - 1; i++)
	{
		A[i] += B[i] + C[i];
		A[i + 1] += A[i] / 10;
		A[i] %= 10; 
	}
}

void mul(int A[], int b)
{
	int t = 0;
	for(int i = 0; i < M - 1; i++)
	{
		t += A[i] * b;
		A[i] = t % 10;
		t /= 10;
	}
}

int main()
{
	cin >> n;
	f[2][0] = 1;
	for(int i = 3; i <= n; i++)
	{
		// f[i] = i - 1 * (f[i - 1] + f[i - 2])
		add(f[i], f[i - 1], f[i - 2]);
		mul(f[i], i - 1);
	}
	int pos = M - 1; 
	while(f[n][pos] == 0) pos--;
	while(pos >= 0) cout << f[n][pos--];
	return 0;
}
